﻿#include <iostream>
#include <mysql/mysql.h>

int main() {
    MYSQL* conn = mysql_init(nullptr);

    // 1. 连接 MySQL
    if (!mysql_real_connect(conn, "localhost", "root", "password", "testdb", 3306, nullptr, 0)) {
        std::cerr << "MySQL连接失败: " << mysql_error(conn) << std::endl;
        return 1;
    }
    std::cout << "MySQL连接成功！" << std::endl;

    // 2. 创建表
    const char* createTableSQL =
            "CREATE TABLE IF NOT EXISTS users ("
            "id INT AUTO_INCREMENT PRIMARY KEY, "
            "name VARCHAR(50), "
            "age INT);";
    if (mysql_query(conn, createTableSQL)) {
        std::cerr << "创建表失败: " << mysql_error(conn) << std::endl;
    }

    // 3. 插入数据
    if (mysql_query(conn, "INSERT INTO users (name, age) VALUES ('Bob', 28);")) {
        std::cerr << "插入失败: " << mysql_error(conn) << std::endl;
    }

    // 4. 查询数据
    if (mysql_query(conn, "SELECT * FROM users;")) {
        std::cerr << "查询失败: " << mysql_error(conn) << std::endl;
    }
    MYSQL_RES* res = mysql_store_result(conn);
    MYSQL_ROW row;
    while ((row = mysql_fetch_row(res))) {
        std::cout << "ID: " << row[0] << ", Name: " << row[1] << ", Age: " << row[2] << std::endl;
    }
    mysql_free_result(res);

    // 5. 更新数据
    mysql_query(conn, "UPDATE users SET age = 35 WHERE name = 'Bob';");

    // 6. 删除数据
    mysql_query(conn, "DELETE FROM users WHERE name = 'Bob';");

    // 7. 关闭连接
    mysql_close(conn);
    return 0;
}